// od_children_queue [不重复的排列] 小朋友高矮排列
// https://www.nowcoder.com/discuss/944848
// https://wenku.baidu.com/view/d4a14ee50f22590102020740be1e650e52eacf99.html
// 现在有一队小朋友，他们高矮不同，，我们以正整数数组表示这一队小朋友的身高，如数组{5,3,1,2,3}
// 我们现在希望小朋友排队，以高矮高矮顺序排列，每一个“高”位置的小朋友要比相邻的位置高或者相等
// 每一个“矮”位置的小朋友要比相邻的位置矮或者相等；要求小朋友们移动的距离和最小，
// 第一个从“高”位开始排，输出最小移动距离即可。移动距离的定义如下所示：第二位小朋友移到第三位小朋友后面，
// 移动距离为1，若移动到第四位小朋友后面，移动距离为2。
// 输入排序前的小朋友，以英文空格的正整数：4 3 5 7 8 小朋友<100个
// 输出排序后的小朋友，以英文空格分割的正整数：4 3 7 5 8
// 输出结果为最小移动距离，只有5和7交换了位置，移动距离都是1
// 输入： 4 1 3 5 2
// 输出： 4 1 5 2 3
// 输入： 1 1 1 1 1
// 输出： 1 1 1 1 1
// 相邻位置可以相等
// 输入： xxx
// 输出： []
// 出现非法参数情况，返回空数组

#include <bits/stdc++.h>
using namespace std;

#define DEBUG_
#ifdef DEBUG_
#define PF(...) printf(__VA_ARGS__)
#define FRE(x)                    \
  freopen("d:/oj/" #x ".in", "r", \
          stdin)  //,freopen("d:/oj/"#x".out","w",stdout)
#define FREC fclose(stdin), fclose(stdout);
#else
#define PF(...)
#define FRE(x)
#define FREC
#endif

int cnt = 0;
string arrayFunc(string str) {
  for (size_t i = 0; i < str.length() - 1; i++) {
    char a;
    if (i % 2 == 0 && str[i] < str[i + 1]) {
      swap(str[i], str[i + 1]);
      cnt++;
    }
    if (i % 2 == 1 && str[i] > str[i + 1]) {
      swap(str[i], str[i + 1]);
      cnt++;
    }
  }
  return str;
}

//

// int main()
//{
//    string sIn = "43578";
//    string out = arrayFunc(sIn); printf("%s\n%s\n%d\n", sIn.c_str(),
//    out.c_str(), cnt); return 0;
//}
